1. Field of the Invention
The present invention relates to error detection and correction codes. More specifically, the present invention relates to techniques for correcting check bit errors.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.
2. Description of the Related Art
A typical memory chip is a square array of data-storage cells. The 64K chip, for example, consists of an array of 256 by 256 data-storage cells. Each cell stores one bit, a 0 or a 1. The 0's and 1's stored in a memory chip are represented by the presence or absence of negative electric charge at sites in the silicon crystal. Each site has an electrical property which makes it a potential well or electronic trap for negative charge. When a 0 is to be stored in a given cell, the potential well at the site is filled with electrons. When a 1 is to be stored, the well is emptied of electrons. When the cell is read, its negative charge is measured. If the charge exceeds a certain value, the stored bit is declared to be a 0, otherwise it is declared to be a 1.
Errors can occur when a cell loses its charge, or if an uncharged potential well acquires a charge. Hard errors occur when a given cell is stuck at 0 or stuck at 1 or toggling between 0 and 1.
Error correcting codes help correct most errors that occur when data is stored or read from computer memories. Error correcting codes, such as the Hamming Code, group data bits together with parity bits into a codeword using an encoding algorithm. The parity bits act as checks for the data bits. Errors occurring in the storing or reading of data bits from the computer memory are detected and corrected with a decoding algorithm.
High speed Error Detection and Correction (EDC) chips use a Modified Hamming Code (MHC) to perform single error correction/double error detection (SEC/DED). The MHC technique generates check bits from an input data word which are stored along with the data as a total word in memory. Most MHC chips read the data in from memory and generate new check bits which are compared with the check bits read from memory to generate syndrome bits. The syndrome bits are then ORed to determine if any errors have occurred. If a single error has occurred, the syndromes are sent through a matrix decoder which determines the location of the error. If the error occurs in the data word, the data word is corrected and output. If the error occurs in the check bits, the data is correct and can therefore be output directly, but the check bit error is usually ignored and remains in the memory.
Check bit errors are usually detected by most error detection and correction chips and can be corrected externally. However, additional circuitry is generally required. Correcting check bit errors externally also requires additional processing time which significantly affects the performance of the chip.
Thus, there is a need in the art for an improved system for correcting check bit errors which does not adversely affect the processing speed of the system.